Systems and methods for selective global navigation satellite system (gnss) navigation

ABSTRACT

Systems and methods for selective and/or opportunistic GNSS/GPS navigation that actively mask or filter satellite signals based on identified “clear sky” or “obstructed sky” regions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit and priority under 35 U.S.C. § 119(e)to, and is a Non-provisional of, U.S. Provisional Patent Application No.63/209,657 filed on Jun. 11, 2021 and titled “ SYSTEMS AND METHODS FOROPPORTUNISTIC GLOBAL POSITIONING SYSTEM (GPS) NAVIGATION”, which ishereby incorporated by reference herein in its entirety.

SUMMARY

Embodiments of the invention provide systems and/or methods forselective and/or opportunistic Global Navigation Satellite System (GNSS)and/or Global Positioning System (GPS) navigation, such as byselectively mapping “open sky” or “clear sky” locations to received GPSsignals and masking and/or filtering signals based on the open/clear skydata.

BACKGROUND

In urban and forested settings, buildings and vegetation often affectsignals transmitted from Global Navigation Satellite System (GNSS)devices such as Global Positioning System (GPS) satellite transmitters.In some cases, the direct signals do not achieve the receiver, onothers, the signal bounces off structures and then reaches the receiver.This is usually called “multipath”. Because of the nature of how GNSSsolutions are computed, multipath signals create errors in the solutionthat are not acceptable for many applications. In simple terms, bydefinition, these reflected paths are longer than the direct path thatwould have been traversed without reflecting and therefore when the timeof flight is computed they erroneously shift the solution to a ghostlocation. These reflections are not easy to filter as they cannot bemodeled as Gaussian noise, and they can persist for long periods of timeforcing Kalman filters usually used for filtering these solutions todrift to these ghost solutions. Recognizing that a particular signal isa direct measurement or a reflection measurement is under normalcircumstances unobservable as the antennas used for traditional GNSSreception are omnidirectional and do not measure the direction of thesignal being received.

BRIEF DESCRIPTION OF THE DRAWINGS

An understanding of embodiments described herein and many of theattendant advantages thereof may be readily obtained by reference to thefollowing detailed description when considered with the accompanyingdrawings, wherein:

FIG. 1A, FIG. 1B, FIG. 1C, and FIG. 1D are block diagrams of a typicalGlobal Navigation Satellite System (GNSS);

FIG. 2 is a block diagram of a system according to some embodiments;

FIG. 3 is a block diagram of a system according to some embodiments;

FIG. 4 is a block diagram of a system according to some embodiments;

FIG. 5 is a block diagram of a system according to some embodiments;

FIG. 6A, FIG. 6B, FIG. 6C, FIG. 6D, FIG. 6E, FIG. 6F, FIG. 6G, and FIG.6H are block diagrams various example configurations of a systemaccording to some embodiments;

FIG. 7 is a flow diagram of a method according to some embodiments;

FIG. 8 is a block diagram of an apparatus according to some embodiments;

FIG. 9A, FIG. 9B, FIG. 9C, FIG. 9D, and FIG. 9E are perspective diagramsof exemplary data storage devices according to some embodiments; and

FIG. 10 is flowchart of an algorithm according to some embodiments.

DETAILED DESCRIPTION

I. Introduction

Referring initially to FIG. 1A, FIG. 1B, FIG. 1C, and FIG. 1D, blockdiagrams of a typical Global Navigation Satellite System (GNSS) (and/orGlobal Positioning System (GPS)) 100 are shown. The GNSS 100 iswell-known and in common commercial usage around the world for personal,commercial, and military location-finding and navigation and maycomprise one or more specific satellite constellation systems such as aGPS, BeiDou Navigation Satellite System (BDS), the Galileo system, theGLObalnaya NAvigazionnaya Sputnikovaya Sistema (GLONASS), the IndianRegional Navigation Satellite System (IRNSS)/Navigation IndianConstellation (NavIC), and/or the Quasi-Zenith Satellite System (QZSS).In the typical exemplary cases depicted in FIG. 1A, FIG. 1B, FIG. 1C,and FIG. 1D, the GNSS 100 may comprise one or more obstacles 102 a-fthat may interfere with the transmission of various signals “A”, “B”,“C”, “D”, “E”, “F” from various respective satellites 108 a-f to areceiver 110 a-c

The GNSS calculations/analysis required to derive a location utilizingthe GNSS 100 are well-understood. In a perfect (i.e., unobstructed)scenario as depicted in FIG. 1 , for example, each satellite 108 a-fbroadcasts it's position and time via the respective signals “A”, “B”,“C”, “D”, “E”, “F”. These signals “A”, “B”, “C”, “D”, “E”, “F” arrive ata first receiver 110 a some time later. Multiplying the time difference(between the transmission time and time of receipt of each signal “A”,“B”, “C”, “D”, “E”, “F”) by the speed of light gives the “pseudorange”to each respective satellite 108 a-f. Given pseudoranges to any four (4)satellites 108 a-f, the position (x₀, y₀, z₀) of the first receiver 110a, and the clock time (t₀), can be computed. If more than four (4)satellites 108 a-f are visible (as depicted in FIG. 1A), then morepseudoranges are available, and the problem is over constrained. Solvingfor the position (x₀, y₀, z₀) of the first receiver 110 a, and the clocktime (t₀) can be accomplished utilizing a solution such as weightedleast squares. Unfortunately, multiple problems can occur that reducethe accuracy of the pseudoranges.

As depicted in FIG. 1B, for example, while a first subset of signals“A”, “B”, “C”, “D” from a first subset of satellites 108 a-d are able toreach a second receiver 110 b unobstructed, the line of sight of secondsubset of signals “E”, “F” from a second subset of satellites 108 e-f istemporarily obstructed by a first obstacle 102 a, e.g., a building asdepicted. The first obstacle 102 a may generally comprise anysignal-blocking object such as tree canopies, bridges, tunnels,mountains, etc. The satellites 108 a-f do, however, move across the sky.Any or all of the second subset of satellites 108 e-f that are currentlyblocked may move from out of the shadow of the first obstacle 102 a andbecome unblocked and any or all of the first subset of satellites 108a-d that are currently unblocked may become blocked. In addition, if thesecond receiver 110 b moves around the first obstacle 102 a, differentsatellites 108 a-f may become blocked or unblocked by the first obstacle102 a. In this scenario of the GNSS 100, a solution can still becomputed using data from the four (4) satellites 108 a-d that remain inline of sight (i.e., the first subset of satellites 108 a-d). Someadvanced navigation systems (not shown) that include components such aschip scale atomic clocks and inertial measurement units, do not requirefour (4) satellites 108 a-d at a time and can use data from just asingle visible satellite 108 a-d.

Whether the signals “A”, “B”, “C”, “D”, “E”, “F” are blocked or not, theGNSS 100 is also susceptible to errors due to “multipath” signals. Asdepicted in FIG. 1C, for example, a third receiver 110 c may be situatedbetween multiple obstacles 102 a-c (e.g., different buildings, asdepicted). Multipath occurs when a radio signal “A1 a”, “A2 a”, “B1 a”from a satellite 108 a-b reaches the antenna from a path “A1 b”, “A2 b”,“A2 c”, “B1 b” that is not the direct line of sight path “A3”. Thisoccurs when the signal reflects off of (signals “A1 a”, “A1 b”, “A2 a”,“A2 b”, “A2 c”) an obstacle 102 a-c or diffracts (bends) around it(signals “B1 a”, “B1 b”). As depicted, each “multipath” path can have asingle hop/bend (signals “A1 a”, “A1 b”, “B1 a”, “B1 b”) or multiplehops/bends (signals “A2 a”, “A2 b”, “A2 c”). Multipath can occur bothwhen the direct line of sight path is blocked (e.g., with respect to asecond satellite 108 b) and when it is clear (e.g., with respect to afirst satellite 108 a). The paths with a hop/bend (signals “A1 a”, “A1b”, “A2 a”, “A2 b”, “A2 c”, “B1 a”, “B1 b”) are longer than the straightline of sight path “A3” resulting in the measured pseudoranges beinglonger than they should be. Errors in the pseudorange from a satellite108 a-b result in errors in the computed position and time of the thirdreceiver 110 c. When multiple paths (signals “A1 b”, “A2 c”, “A3”) fromone satellite 108 a reach the third receiver 110, the measuredpseudorange to that third receiver 110 is an “averaged” range of eachoverall path (“A1 a”, “A1 b”, “A2 a”, “A2 b”, “A2 c”, “A3”). This“average” depends on the strength of the reflections, antennacharacteristics, etc. For example, GPS antennas may use a strong groundplane to block ground reflection or have polarization to help blockreflections.

As depicted in FIG. 1D, natural and artificial interference can occurwhen the line of sight path “A1”, “Bb” to a fourth receiver 110 d ispartially blocked by small or thin obstacles 102 d-f such as othersignals 102 d, atmospheric effects such as smoke 102 e, and bare treesor wires 102 f. In these cases, the signal “A1”, “B1” is weak ormalformed, which can result in a noisy pseudorange. Signal jammingdevices (e.g., a source of the other signals 102 d), either deliberateor unintentional, increase background noise resulting in a relativelyreduced signal strength and a noisy pseudorange or complete loss ofsignal “A1”, “B1”.

Receivers 110 a-d can be designed to provide some level of mitigation tothese problems. Antennas (not separately shown) can have good Right-HandCircular Polarization that reduce multipath reception, for example, orreceivers 110 a-d can monitor the signal-to-noise ratios or the timeseries of range residual variance to help detect and reject errors.These and other methods try to detect errors when they occur but they donot anticipate when errors will occur.

According to some embodiments, these and other deficiencies of prior GPSsystems are remedied by systems and/or methods for selective and/oropportunistic GNSS/GPS navigation, such as by selectively mapping “opensky” or “clear sky” locations to received GNSS/GPS signals. In someembodiments, for example, information indicative of locations having“clear sky” access may be utilized to modify the typical GNSS/GPSnavigational processing routines/calculations. For some applications,the areas of “open sky” that provide direct line of sight to thesatellites are known. For example, a bus traversing a city may know thatat a particular intersection, only satellites to the North may beviewable. In some embodiments, a database of known “open sky” or “clearsky” areas or locations may be utilized to qualify the chance that aGNSS pseudo range received is a direct or a reflected/bent measurement,and therefore it can be eliminated or de-emphasized from the solution.According to some embodiments, a system may utilize at least one (1) oftwo (2) concepts that aid the selective elimination of suspectsatellites:

-   -   1. sequential GPS concept uses an accurate clock (e.g., a Chip        Scale Atomic Clock (CSAC)) and an inertial system to        sequentially acquire position by reading pseudoranges from the        different satellites at different times and computing the        solution by utilizing the inertial solution and accurate clock        to create the system of equations necessary to solve for        position and time; and    -   2. directional antennas can be used to receive only in areas        where there is “open sky”.

Although not necessary in some embodiments, these concepts maysignificantly improve GNSS/GPS performance by allowing the system tostill acquire fixes after some satellites (the multipath ones) areeliminated. It is worth noting that the frequencies in standard GNSSsatellites were selected as a compromise between accuracy and coverage.In other words, the designers purposely selected frequencies that createsome reflections to increase the chances of getting the minimum four (4)simultaneous satellites necessary to get a fix. With the advent of CSACdevices and sequential GPS concepts, this requirement is no longer validand a selective and/or opportunistic method such as described herein maybe simpler and more effective to implement.

II. Selective and/or Opportunistic GNSS/GPS Navigation Systems

Turning now to FIG. 2 , a block diagram of a system 200 according tosome embodiments is shown. In some embodiments, the system 200 maycomprise a plurality of objects 202 a-b, a network 204, a remote server206, a plurality of satellites 208 a-n (and/or other navigation signalsources), and/or a vehicle 210. The system 200 may comprise, forexample, a GNSS in which the vehicle 210 resolves geolocation and/orpositioning information of the vehicle 210 based on communications viathe network 204 and/or from one or more of the satellites 208 a-n (e.g.,via respective signals “A”, “B1”, “B2”, “n1”, “n2”, “n3”). The vehicle210 may comprise, ins some embodiments, a processing device 212, acommunication device 214, an input device 216 a, a sensor 216 b, apropulsion device 218 a, a maneuver device 218 b, and/or a power device222. In some embodiments, the vehicle 210 may be in communication with,e.g., via the network 204, the remote server 206. According to someembodiments, the vehicle 210 may comprise a masking device 230 and/or amemory device 240.

Fewer or more components 202 a-b, 204, 206, 208 a-n, 210, 212, 214, 216a-b, 218 a-b, 222, 230, 240 and/or various configurations of thedepicted components 202 a-b, 204, 206, 208 a-n, 210, 212, 214, 216 a-b,218 a-b, 222, 230, 240 may be included in the system 200 withoutdeviating from the scope of embodiments described herein. In someembodiments, the components 202 a-b, 204, 206, 208 a-n, 210, 212, 214,216 a-b, 218 a-b, 222, 230, 240 may be similar in configuration and/orfunctionality to similarly named and/or numbered components as describedherein. In some embodiments, the system 200 (and/or portion thereof) maycomprise GNSS platform programmed and/or otherwise configured toexecute, conduct, and/or facilitate one or more methods (e.g., themethod 700 of FIG. 7 herein) for selective and/or opportunistic GNSS/GPSnavigation, as described herein.

According to some embodiments, the objects 202 a-b may comprise anytype, configuration, and/or quantity of objects such as any number ortype of obstacles that may block, bend, reflect, refract, distort,and/or otherwise interfere with one or more of the signals “A”, “B1”,“B2”, “n1”, “n2”, “n3”. As depicted for non-limiting purposes of examplein FIG. 2 , a primary signal “n1” from an n^(th) satellite 208 n may bereflected off of a first object 202 a to define a secondary signal “n2”and/or the secondary signal “n2” may be reflected off of a second object202 b to define a tertiary signal “n3”. In such a case, the objects 202a-b may comprise buildings, terrain features such as hills or mountains,etc. In some embodiments, a first signal “B1” from a second satellite208 b may be received without obstruction by the vehicle 210 while asecond signal “B2” from the second satellite 208 b may pass through(and/or otherwise be affected by) the second object 202 b. In such acase, the second object 202 b may comprise natural and/or man-madediffusive materials such as a tree canopy (branches and/or leaves),electrical wires, smoke, haze, moisture (e.g., mist, rain, etc.), and/orchaff (i.e., man-made and/or man-implemented diffusive, reflective,and/or obstructive materials). According to some embodiments, one ormore of the objects 202 a-b may comprise one or more vehicles (e.g.,additional instances of the vehicle 210).

The network 204 may, according to some embodiments, comprise a LocalArea Network (LAN; wireless and/or wired), cellular telephone,Bluetooth®, Near Field Communication (NFC), and/or Radio Frequency (RF)network with communication links between the remote server 206 and thevehicle 210. In some embodiments, the network 204 may comprise directcommunication links between any or all of the components 206, 208 a-n,210, 212, 214, 216 a-b, 218 a-b, 222, 230, 240 of the system 200. Thesensor 216 b may, for example, be directly interfaced or connected toone or more of the processing device 212 and/or the remote server 206via one or more wires, cables, wireless links, and/or other networkcomponents, such network components (e.g., communication links)comprising portions of the network 204. In some embodiments, the network204 may comprise one or many additional or alternate links or networkcomponents other than those depicted in FIG. 2 . The vehicle 210 may,for example, be connected to the remote server 206 via various celltowers, routers, repeaters, ports, switches, and/or other networkcomponents that comprise the Internet and/or a cellular telephone(and/or Public Switched Telephone Network (PSTN)) network, and whichcomprise portions of the network 204.

While the network 204 is depicted in FIG. 2 as a single object, thenetwork 204 may comprise any number, type, and/or configuration ofnetworks that is or becomes known or practicable. According to someembodiments, the network 204 may comprise a conglomeration of differentsub-networks and/or network components interconnected, directly orindirectly, by the components 206, 208 a-n, 210, 212, 214, 216 a-b, 218a-b, 222, 230, 240 of the system 200. The network 204 may comprise oneor more cellular telephone networks with communication links between thecommunication device 214 and the remote server 206, for example, and/ormay comprise an NFC or other short-range wireless communication path,with communication links between the vehicle 210 and one or more of theobjects 202 a-b, for example.

According to some embodiments, the remote server 206 may comprise anytype or configuration of a computerized processing device, such as a PC,laptop computer, computer server, database system, and/or otherelectronic device, devices, or any combination thereof. In someembodiments, the remote server 206 may be owned and/or operated by athird party (i.e., an entity different than any entity owning and/oroperating either the vehicle 210 and/or the satellites 208 a-n; such asa certificate, authentication, data storage, image analysis, mapping,demographic, graphical element, and/or cryptographic service provider).The remote server 206 may comprise, for example, a server via whichcloud-based services, such as Al processing and/or mapping services(e.g., including data descriptive of the objects 202 a-b) are providedto the vehicle 210. According to some embodiments, the remote server 206may comprise a plurality of devices (e.g., sensors, transmitters, and/orcomputing devices) and/or may be associated with a plurality ofthird-party entities. In some embodiments, the remote server 206 maycomprise the memory device 240 (or a portion thereof), such as in thecase the remote server 206 comprises a third-party data storage service,device, and/or system, such as the Amazon® Simple Storage Service(Amazon® S3™) available from Amazon.com, Inc. of Seattle, Wash. or anopen-source third-party database service, such as MongoDB™ availablefrom MongoDB, Inc. of New York, N.Y.

In some embodiments, the satellites 208 a-n may comprise any type and/orquantity of earth-orbiting and/or airborne devices that form acommunication network (e.g., the network 204 and/or a separate networkcomprising the signals “A”, “B1”, “B2”, “n1”, “n2”, “n3”). Thecommunication network may comprise, for example, a geo-location networksuch as a GNSS/GPS constellation of earth-orbiting satellites 208 a-n.According to some embodiments, one or more of the satellites 208 a-n maycomprise in-atmosphere objects such as drones and/or other aircraft(heavier-than-air or lighter-than-air) that generate any or all of thesignals “A”, “B1”, “B2”, “n1”, “n2”, “n3”. In the case that thesatellites 208 a-n comprise a GPS constellation of satellites, thesatellites 208 a-n may comprise a subset of twenty-seven (27) totalactive medium Earth-orbit Space Vehicles (SV) that are (e.g., but-forthe objects 202 a-b) in line-of-sight with the vehicle 210 at aparticular time.

According to some embodiments, the vehicle 210 may comprise any type,configuration, and/or quantity of vehicle, manned, unmanned, autonomous,or semi-autonomous, that is or becomes known or practicable. The vehicle210 may comprise, for example, an autonomous path-followingtransportation vehicle that is operable to follow one or more predefinedand/or automatically computed paths (not shown) and/or a manned vehicle210. In some embodiments, the vehicle 210 may comprise the processingdevice 212 such as a Central Processing Unit (CPU) that executesinstructions (not shown) stored in the memory device 240 to operate inaccordance with embodiments described herein. The processing device 312may, for example, execute one or more programs, modules, and/or routines(such as GNSS/GPS processing routines utilizing some or all of thesignals “A”, “B1”, “B2”, “n1”, “n2”, “n3”) that facilitate localization,navigation, and/or movement of the vehicle 210. The processing device212 may comprise, in some embodiments, one or more Eight-Core Intel®Xeon® 7500 Series electronic processing devices.

According to some embodiments, the communication device 214 may compriseany wired and/or wireless communication object and/or network devicesuch as, but not limited to, a Network Interface Card (NIC), a RadioFrequency (RF) antenna, transmitter, encoder, decoder, and/or receiver.In some embodiments, the communication device 214 may comprise hardware,software, and/or firmware operable to enable wireless communicationsincluding, but not limited to, encoding and/or decoding modules,filters, encryption and/or decryption modules, wireless signaltriangulation devices, and/or atomic clock modules. In some embodiments,the communication device 214 may comprise a GNSS/GPS antenna and/orreceiver that, e.g., in cooperation with the processing device 212,receives and processes some or all of the signals “A”, “B1”, “B2”, “n1”,“n2”, “n3” to determine a geo-location of the vehicle 210. In someembodiments, the communication device 214 may comprise anomnidirectional antenna.

According to some embodiments, the input device 216 a may comprise oneor more of a throttle, a steering, and a brake control mechanism and/orinterface via which a human operator may control the speed and/ordirection of the vehicle 210. The operator may, for example, utilize theinput device 216 a to define a control action to define the speed of thevehicle 210 a s well as to make decisions such as when to stop or tocontinue past, around, over, and/or under one or more of the objects 202a-b. According to some embodiments, the input device 216 a may compriseone or more switches, levers, wheels, pedals, and/or interface elementscapable of communicating speed, direction, etc.

In some embodiments, the sensor 216 b may comprise may any type,configuration, and/or quantity of sensor devices that are or becomeknown or practicable. In some embodiments, the sensor 216 b may comprisea Light Detection and Ranging (LiDAR), LAser Detection and Ranging(LADAR), radar, sonar, Infrared Radiation (IR), RF, ultrasound,structured light, and/or imaging (e.g., stereo vision and/or 3-D camera)device operable to acquire data descriptive of one or more of theobjects 202 a-b and/or one or more of the satellites 208 a-n. Accordingto some embodiments, the sensor 216 b may also or alternatively comprisea gyroscope, image, audio, and/or video capture and/or recording device,chemical detection device, and/or a light sensor. According to someembodiments, the sensor 216 b may comprise various movement sensors suchas speed/velocity sensors, pressure sensors, temperature sensors,accelerometers, Inertial Measurement Unit (IMU) devices, and/or tiltsensors. In some embodiments, the sensor 216 b may comprise one or moresensors operable to detect a bearing, heading, angle, and/or location ofone or more of the objects 202 a-b and/or satellites 208 a-n. The sensor216 b may comprise a camera and/or LiDAR device that detects, locates,and/or characterizes (e.g., in coordination with the processing device212, identifies and/or determines one or more characteristics of; such ashape, size, composition, mass, density, etc.) the second object 202 b,for example, and/or may comprise a receiver that is configured tomeasure a bearing to the n^(th) satellite 208 n. According to someembodiments, the sensor 216 b (and/or the processing device 212) mayutilize both information descriptive of the second object 202 b and then^(th) satellite 208 n (and/or the signals “n1”, “n2”, “n3” therefrom)to determine that the second object 202 b is likely to be affecting thesignals “n1”, “n2”, “n3” from the n^(th) satellite 208 n.

According to some embodiments, the propulsion device 218 a may compriseany type, configuration, and/or quantity of propulsion devices that areoperable to move the vehicle 210 from one location to another. Thepropulsion device 218 a may comprise, for example, one or more motors,engines, gears, drives, propellers, fans, jets, nozzles, wheels, treads,and/or magnetic propulsion devices. In some embodiments, the maneuverdevice 218 b may comprise any type, quantity, and/or configuration ofmechanical, electrical, and/or electro-mechanical devices that areoperable to control the path of the vehicle 210 (a/or the direction ofthrust output by the propulsion device 218 a). The maneuver device 218 bmay comprise, for example, steering linkage, actuators, controlsurfaces, thrust vectoring devices, etc. In some embodiments, themaneuver device 218 b may be coupled to and/or in communication with thepropulsion device 218 a. The maneuver device 218 b may comprise, forexample, a steer-by-wire system that permits computerized control (e.g.,via the processing device 212 and/or the remote server 206) of themaneuvering of the vehicle 210. The maneuver device 218 b and thepropulsion device 218 a may, for example, operate in a coordinatedfashion (e.g., in response to commands from the processing device 212)to cause the vehicle 210 to follow a desired path and/or route.

According to some embodiments, the power device 222 may be electricallycoupled to provide power to any or all of the propulsion device(s) 218a, the communication device 214, the processing device 212, the inputdevice 216 a, the sensor 216 b, and/or the maneuver device 218 b. Insome embodiments, the power device 222 may comprise a power source suchas a solar panel, inertial generator, on-board generator, alternator,fuel-cell, external power supply port, etc. According to someembodiments, the power device 222 may also or alternatively comprise apower storage device such as one or more capacitors, batteries, fuelreservoirs or tanks, etc.

In some embodiments, the vehicle 210 may comprise and/or be coupled tothe masking device 230. The masking device 230 may, for example, becoupled, oriented, and/or disposed to measure, interpret, intercept,and/or filter or “mask” one or more of the signals “A”, “B1”, “B2”,“n1”, “n2”, “n3” and/or communications to and/or from the network 204.While the term “masking” is utilized for convenience of description withrespect to the masking device 230, in some embodiments the maskingdevice 230 may be operative to selectively filter and/or process thesignals “A”, “B1”, “B2”, “n1”, “n2”, “n3” without performing a “masking”thereof. The masking device 230 may, in some embodiments, comprise aphysical/mechanical and/or electronic device that actively “masks” orfilters certain signals “A”, “B1”, “B2”, “n1”, “n2”, “n3” such as thedistorted second signal “B2” from the second satellite 208 b and/or thetertiary signal “n3” from the n^(th) satellite 208 n. The masking device230 may, for example, intercept and/or filter the signals “A”, “B1”,“B2”, “n1”, “n2”, “n3” such that only a first subset of the signals “A”,“B1” are provided to and/or utilized by the vehicle 210 (e.g., thecommunication device 214, the sensor 216 b, and/or the processing device212 thereof) in determining a localization for the vehicle 210. In otherwords, GNSS/GPS processing conducted by the vehicle 210 may only utilize(e.g., due to the masking device 230) the first subset of signals “A”,“B1” as input in a GNSS/GPS geo-positioning calculation and/or mayselectively de-value or weight a second subset of signals “B2”, “n1”,“n2”, “n3” that are determined to have impeded line-of-sight betweentheir sources (the second satellite 208 b and the n^(th) satellite 208n) and the vehicle 210.

In some embodiments, the memory device 240 may store various logic,code, and/or applications, each of which may, when executed, participatein, facilitate, and/or cause selective and/or opportunistic GNSS/GPSnavigation processing, as described herein. In some embodiments, thememory device 240 may comprise any type, configuration, and/or quantityof data storage devices that are or become known or practicable. Thememory device 240 may, for example, comprise an array of optical and/orsolid-state memory cards or hard drives configured to store sensor data,geo-location data, maneuvering data, object location and/orclassification data, navigation data, road network data, rules of theroad data, routing data (e.g., analysis formulas and/or mathematicalmodels), credentialing and/or communication instructions, codes, and/orkeys, and/or various operating instructions, drivers, etc. In someembodiments, the memory device 240 may comprise a solid-state and/ornon-volatile memory card (e.g., a Secure Digital (SD) card, such as anSD Standard-Capacity (SDSC), an SD High-Capacity (SDHC), and/or an SDeXtended-Capacity (SDXC) and any various practicable form-factors, suchas original, mini, and micro sizes, such as are available from WesternDigital Corporation of San Jose, Calif. While the memory device 240 isdepicted as a stand-alone component of the vehicle 210, the memorydevice 240 may comprise multiple components. In some embodiments, amulti-component memory device 240 may be distributed across variousdevices and/or may comprise remotely dispersed components. Any of thevehicle 210, the satellites 208 a-n, the objects 202 a-b, and/or theremote server 206 may comprise the memory device 240 or a portionthereof, for example.

Fewer or more components 202 a-b, 204, 206, 208 a-n, 210, 212, 214, 216a-b, 218 a-b, 222, 230, 240 and/or various configurations of thedepicted components 202 a-b, 204, 206, 208 a-n, 210, 212, 214, 216 a-b,218 a-b, 222, 230, 240 may be included in the system 200 withoutdeviating from the scope of embodiments described herein. In someembodiments, the components 202 a-b, 204, 206, 208 a-n, 210, 212, 214,216 a-b, 218 a-b, 222, 230, 240 may be similar in configuration and/orfunctionality to similarly named and/or numbered components as describedherein. In some embodiments, the system 200 (and/or portion thereof) maycomprise a GNSS platform programmed and/or otherwise configured toexecute, conduct, and/or facilitate one or more methods for selectiveand/or opportunistic GNSS/GPS navigation, as described herein.

Referring now to FIG. 3 , a block diagram of a system 300 according tosome embodiments is shown. The system 300 may comprise, for example, anenvironment in which an object 302 is disposed and in which a GNSS/GPS(and/or another navigation system comprising a constellation of remotenavigation signal transmitters) operates. The GNSS/GPS may comprise aconstellation of satellites 308 a-f that transmit and/or broadcastsignals “A”, “B”, “C”, “D”, “E”, “F” and a receiver 310 that utilizesthe signals to resolve a geo-location of the receiver 310. In someembodiments, the constellation of satellites 308 a-f may be disposedacross a visible portion of sky 332 and/or may comprise a subset of atotal constellation of satellites 308 a-f, with other members of theconstellation not being visible to (e.g., not having a line-of-sight to)the receiver 310 (and accordingly not being shown in FIG. 3 ). Accordingto some embodiments, a selective and/or opportunistic GNSS/GPSnavigation process may be implemented by the receiver 310. The receiver310 may identify, for example, that the object 302 is oriented and/orpositioned (e.g., with respect to the receiver 310) such that it doesnot interfere with a first subset of signals “A”, “B”, “C”, “D” from afirst subset of the satellites 308 a-d, but that it does block, bend,reflect, refract, obstruct, and/or otherwise is likely to negativelyalter a second subset of signals “E”, “F” from a second subset of thesatellites 308 e-f. In some embodiments, an approximate (e.g.,previously derived and/or computed based on movement data) position ofthe receiver 310 and a map of the local terrain (e.g., data identifyingthe object 302) may be utilized to generate a “mask” denoting a firstsubset of sky 334 (e.g., of the visible portion of sky 332) that isclear of obstructions (i.e., “clear sky”) and a second subset of sky 336(e.g., of the visible portion of sky 332) that is obstructed (e.g., bythe object 302; i.e., “obstructed sky”). According to some embodiments,the receiver 310 may only (e.g., selectively and/or opportunistically)utilize the first subset of satellites 308 a-d located in the “clearsky” region (i.e., the first subset of sky 334) to compute theGNSS/GPS-based geo-position and time. The second subset of satellites308 e-f in the “obstructed sky” region (i.e., the second subset of sky336) may, for example, be “masked” off and/or filtered out and/or mayotherwise be prevented from being utilized as input by the receiver 310(e.g., utilizing a “masking device such as a physical shield selectivelypositioned to block the second subset of sky 336 and/or an electronicfilter, e.g. ,that excludes the “obstructed sky” signals “E”, “F” basedon the relative locations of the receiver 310, the object 302, and thesecond subset of satellites 308 e-f; not separately shown). As thesatellites 308 a-f move across the sky they may enter or exit the maskedarea(s)/“obstructed sky” region(s) (i.e., the second subset of sky 336).As the receiver 310 moves in the local terrain (e.g., changing positionwith respect to the object 302), the area of sky that isobstructed/second subset of sky 336 will change as will the extendsand/or bounds of the respective mask/filter. A database (not shown) maybe utilized to determine the locations, extents, boundaries, and/orbearings of open sky/first subset of sky 334 and/or obstructedsky/second subset of sky 336. An approximate position of the receiver310 may be utilized to retrieve mask data defining a mask of the skythat defines the second subset of sky 336 at a particular time. In someembodiments, the definition of the mask/second subset of sky 336 may besensed utilizing a camera, LiDAR, Radar, and/or other sensor (notshown). In some embodiments, the receiver 310 may be utilized to receivepseudoranges and to lock with the first subset of satellites 308 a-d inthe unmasked/acceptable sky region/first subset of sky 334. Given themask/second subset of sky 336 for a particular area, the second subsetof satellites 308 e-f that are not in view given the mask/second subsetof sky 336 may be selectively eliminated or de-weighted from thegeo-location computation. According to some embodiments, the maskingdevice may comprise a directional antenna that may be selectivelypointed, tuned, and/or otherwise restricted to the first subset of sky334 and accordingly the receiver 310 may only process the first subsetof satellites 308 a-d (or the first subset of signals “A”, “B”, “C”, “D”thereof) that are in “open sky”. According to some embodiments, asequential GPS concept/computation process may be utilized tofind/resolve a geo-location fix.

Fewer or more components 302, 308 a-f, 310, 332, 334, 336 and/or variousconfigurations of the depicted components 302, 308 a-f, 310, 332, 334,336 may be included in the system 300 without deviating from the scopeof embodiments described herein. In some embodiments, the components302, 308 a-f, 310, 332, 334, 336 may be similar in configuration and/orfunctionality to similarly named and/or numbered components as describedherein. In some embodiments, the system 300 (and/or portion thereof) maycomprise a GNSS platform programmed and/or otherwise configured toexecute, conduct, and/or facilitate one or more methods (e.g., themethod 700 of FIG. 7 herein) for selective and/or opportunistic GNSS/GPSnavigation, as described herein.

Turning now to FIG. 4 , a block diagram of a system 400 according tosome embodiments is shown. The system 400 may comprise, for example, anenvironment in which a plurality of objects 402 a-c are disposed arounda vehicle 410. In the case that the vehicle 410 comprises GNSS/GPSequipment (and/or other navigation signal receiving equipment; notseparately shown) to permit the vehicle 410 to compute the geo-locationof the vehicle 410, typical systems would utilize GNSS/GPS signals (notseparately shown in FIG. 4 ) received from any portion of the sky 432(e.g., from a plurality of satellites; not shown) to resolve thegeo-location (e.g., GPS and/or latitude and longitude coordinates of thevehicle 410). According to some embodiments, the system 400 may insteadselectively and/or opportunistically resolve the geo-location of thevehicle 410 by identification of a plurality of “open sky” regions 434a-b and/or by identification of a plurality of “obstructed sky” regions436 a-c.

The identified regions 434 a-b, 436 a-c may, for example, be utilized toselectively choose which received signals the vehicle 410 will utilize(and/or weigh more heavily) in resolving the geo-location calculations.In some embodiments, any or all signals received from bearings,directions, and/or locations (e.g., derived, calculated, and/orestimated) that correspond to one or more of the obstructed sky regions436 a-c may be discarded and/or down-weighted when performing thegeo-location calculations. It may be presumed, for example, that anysignal originating from and/or arriving from a first obstructed skyregion 436 a must be either a refracted, reflected, and/or a counterfeitsignal, as the sky 432 corresponding to the first obstructed sky region436 a is not visible (e.g., there is no direct line-of-sight) to thevehicle 410.

According to some embodiments, the regions 434 a-b, 436 a-c may beidentified based on a known or estimated location of the vehicle 410 anddata descriptive of the objects 402 a-c. In some embodiments, knownsatellite locations may be utilized to identify and/or define the opensky regions 434 a-b. Incoming signal bearings may be compared to knownsatellite location bearings, for example, to identify signals thatcorrespond to satellite location bearings and are accordingly determinedto be within an open sky region 434 a-b, as opposed to incoming signalbearings that do not correspond to known satellite location bearings andare accordingly determined to be within an obstructed sky region 436 a-c(and/or to otherwise not comprise a line-of-sight signal). In someembodiments, the vehicle 410 may sense, identify, locate, and/orcharacterize the objects 402 a-c and define the regions 434 a-b, 436 a-cbased on the data descriptive of the objects 402 a-c. The vehicle 410may “sense” the open sky regions 434 a-b, for example, by identifyingareas in which no LiDAR and/or radar returns have been received (i.e.,in which none of the objects 402 a-c have been detected). According tosome embodiments, as the vehicle 410 moves, the regions 434 a-b, 436 a-cmay be re-identified, re-calculated, and/or otherwise adjusted toaccount for the new relative orientations of the vehicle 410 and theobjects 402 a-c (and/or any new/updated locations of any satellites inthe visible sky 432). In some embodiments, the previously-calculatedgeo-location (e.g., utilizing selective/opportunistic signalmasking/filtering) may be utilized in conjunction with sensed and/ortracked movement data of the vehicle 410 to estimate the new locationand/or time of the vehicle 410.

Fewer or more components 402 a-c, 410, 432, 434 a-b, 436 a-c and/orvarious configurations of the depicted components 402 a-c, 410, 432, 434a-b, 436 a-c may be included in the system 400 without deviating fromthe scope of embodiments described herein. In some embodiments, thecomponents 402 a-c, 410, 432, 434 a-b, 436 a-c may be similar inconfiguration and/or functionality to similarly named and/or numberedcomponents as described herein. In some embodiments, the system 400(and/or portion thereof) may comprise a GNSS platform programmed and/orotherwise configured to execute, conduct, and/or facilitate one or moremethods (e.g., the method 700 of FIG. 7 herein) for selective and/oropportunistic GNSS/GPS navigation, as described herein.

Referring now to FIG. 5 , a block diagram of a system 500 according tosome embodiments is shown. The system 500 may comprise, for example, anenvironment in which a plurality of buildings 502 a-d are disposedaround a drone 510 (e.g., the drone 510 is flying through/in a cityenvironment). In some embodiments, the drone 510 may comprise GNSS/GPSequipment (not separately shown) to permit the drone 510 to compute thegeo-location (e.g., GPS and/or latitude and longitude coordinates and/orelevation) of the drone 510 (e.g., for navigational purposes), Accordingto some embodiments, the drone 510 may selectively and/oropportunistically resolve the geo-location data (e.g., repetitively, asit changes location in the environment) by identification of a pluralityof “open sky” regions 534 a-b and/or by identification of a plurality of“obstructed sky” regions 536 a-d.

The identified regions 534 a-c, 536 a-e may, for example, be utilized toselectively choose which received signals (e.g., GNSS/GPS signals; notshown) the drone 510 will utilize (and/or weigh more heavily) inresolving the geo-location calculations. In some embodiments, any or allsignals received from bearings, directions, and/or locations (e.g.,derived, calculated, and/or estimated) that correspond to one or more ofthe obstructed sky regions 536 a-e may be discarded and/or down-weightedwhen performing the geo-location calculations. First, third, and fourthobstructed sky regions 536 a, 536 c, 536 d may directly correspond toareas of the sky blocked by the buildings 502 a-c, for example, and anysignals received from those obstructed sky regions 536 a, 536 c, 536 d(e.g., a first subset) may be filtered out and/or ignored. In someembodiments, one or more of the obstructed sky regions 536 a-e may beassigned to and/or associated with (e.g., based on stored associationdata) a weight, “handicap”, and/or other qualitative and/or quantitativemodifier. According to some embodiments, for example, second and/orfifth obstructed sky regions 536 b, 536 e may comprise areas thatcorresponds to partial obstructions or potential interferences such asthe depicted crane structure interference area 536 b and cloud/smokearea 536 e in FIG. 5 . In some embodiments, signals received from thesecond and/or fifth obstructed sky regions 536 b, 536 e may be utilizedas input in the geo-location calculations but may be modified (and/orcalculated in a modified manner), e.g., based on the assigned modifiers.In some embodiments, data descriptive of the potential interferences(e.g., clouds, smoke, area of signal interference, etc.) may becharacterized and the modifiers may be selected and/or computed based onone or more characteristics of the potential interferences. In the casethat one of the potential interferences (e.g., a first interference)comprises a first/certain type, size, density (e.g., moisture content),temperature, and/or altitude of cloud, for example, the modifier maycomprise a first value, while in the case of a second/different type,size, density (e.g., moisture content), temperature, and/or altitude ofcloud, the modifier may comprise a second value.

Fewer or more components 502 a-c, 510, 534 a-b, 536 a-e and/or variousconfigurations of the depicted components 502 a-c, 510, 534 a-b, 536 a-emay be included in the system 500 without deviating from the scope ofembodiments described herein. In some embodiments, the components 502a-c, 510, 534 a-b, 536 a-e may be similar in configuration and/orfunctionality to similarly named and/or numbered components as describedherein. In some embodiments, the system 500 (and/or portion thereof) maycomprise a GNSS platform programmed and/or otherwise configured toexecute, conduct, and/or facilitate one or more methods (e.g., themethod 700 of FIG. 7 herein) for selective and/or opportunistic GNSS/GPSnavigation, as described herein.

Referring now to FIG. 6A, FIG. 6B, FIG. 6C, FIG. 6D, FIG. 6E, FIG. 6F,FIG. 6G, and FIG. 6H, block diagrams of various example configurationsof a system 600 a-h according to some embodiments are shown. In someembodiments, the system 600 a-h may comprise an object 602 (e.g., anobstruction and/or interference; e.g., shown in FIG. 6G), one or moreprocessing devices 612 (e.g., a processing device 612 a and/or a postprocessing device 612 b, as depicted in FIG. 6E), one or more GNSSreceivers 614, 614 a-b, one or more antenna 616, 616 a-b, a Chip ScaleAtomic Clock (CSAC) 616 c (e.g., shown in FIG. 6C), an IMU 616 d (e.g.,shown in FIG. 6D), a sensor 616 g (e.g., shown in FIG. 6G), one or moreactuators 618, 618 h-1, 618 h-2, a masking device 630, and/or a memorydevice 640 (e.g., storing object data 644-1 and/or location data 644-2).The memory device 640 may comprise a database containing a descriptionof open areas where the sky can be seen directly without occlusions(e.g., the object data 644-1), for example, and/or the processing device612 may comprise a controller/computer programmed to processlocalization solutions for pseudoranges coming from satellites (notshown) that are not occluded by a mask and/or filter applied by themasking device 630. With reference to a first configuration of thesystem 600 a depicted in FIG. 6A, for example, one or more signals fromone or more satellites may be received by the antenna 616 and theincoming data/input may be provided to and/or processed by the GNSSreceiver 614. In some embodiments, the processing device 612 may executestored instructions in coordination with data from the GNSS receiver 614to permit the masking device 630 to alter, adjust, and/or influencegeo-location computations. The masking device 630 may apply terrain,obstruction, and/or other object data 644-1 and utilize a current and/orestimated location from the location data 644-2, for example, toselectively exclude certain signals from the computational input, e.g.,by masking, filtering, limiting, adjusting, and/or otherwise modifying afull set of signals to a reduced subset of utilized signals thereof.

According to some embodiments, a second configuration of the system 600b as shown in FIG. 6B may comprise a directional antenna 616 that isselectively pointed to areas where the sky is clear of obstructions andto known satellites locations. The masking device 630 may query thememory device 640 and retrieve satellite location/bearing data, forexample, and in coordination with the processing device 612 may commandthe actuator 618 to selectively position the directional antenna 616 atan angle “A” (e.g., with respect to the horizon as shown and/or withrespect to one or more other planes of reference). In the case that thedirectional antenna 616 defines a particular range, aperture, and/orsensing area with respect to a direction in which the directionalantenna 616 is selectively oriented by the second configuration of thesystem 600 b, the direction may be selected to ensure that the range,aperture, and/or sensing area stays oriented with one or more “open sky”areas, e.g., to prevent reception of reflected, refracted, bent, and/orotherwise degraded and/or suspect signals.

In some embodiments, a third configuration of the system 600 c as shownin FIG. 6C may comprise the CSAC 616 c, which may comprise, for example,an accurate clock that can process the GNSS solution over time bysequentially receiving different satellite signals via the antenna 616a. According to some embodiments, a fourth configuration of the system600 d depicted in FIG. 6D may comprise the IMU 616 d that may, forexample, provide inertial/visual odometry/LiDAR odometry and/or otherrelative localization data to measure a change in pose within subsequentGNSS measurements. In some embodiments, a fifth configuration of thesystem 600 e as depicted in FIG. 6E

may comprise the post processing device 612 b that may operate uponcomputed data from the processing device 612 a to populate the objectdata 644-1 and/or the location data 644-2. The post processing device612 b may, for example, populate a database (e.g., the memory device640) that is built by postprocessing GPS solutions and markingpseudoranges that distorted the solutions (that are analyzed to belikely to be multipath). In such a manner, for example, suspect signalsbearings, origination locations, and/or regions or areas may be flaggedand utilized by the masking device 630 to filter signals for future GNSScomputations.

According to some embodiments, a sixth configuration of the system 600 fas shown in FIG. 6F may comprise a first/omnidirectional antenna 616 aand a directional antenna 616 b. In some embodiments, each antenna 616a-b may be in communication with a separate GNSS receiver 614 a-b. Inthe sixth configuration of the system 600 f, signals received via thedifferent antennas 616 a-b may be processed and compared to identifysignals that are suspect. The sixth configuration of the system 600 fmay be configured, for example, such that a direction at which thedirectional antenna 616 b is pointing is utilized as a filter fordetecting multipath either in real time or for building the database ofmasks (i.e., the object data 644-1). According to some embodiments, aseventh configuration of the system 600 g as shown in FIG. 6G maycomprise a sensor 616 g that builds and/or populates the object data644-1 (and/or the location data 644-2) by detecting, identifying,locating, and/or classifying the object 602. In such a manner, forexample, the seventh configuration of the system 600 g may self-buildand/or derive a model and/or mapping of clear and obstructed sky areas,bearings, locations, etc., without the need to utilize data from aseparate and/or remote source. According to some embodiments, the sensor616 g may sense and/or detect various environmental and/or object datasuch as data descriptive of a size, shape, location, density, and/ortemperature of the object 602, and/or wind, rain, light, humidity,magnetic field, and/or pressure measurements. Wind measurements from thesensor 616 g may, for example, be utilized to predict and/or track smokeand/or other transient and/or mobile interferences to dynamically adjustmasking/filtering applied by the masking device 630. In someembodiments, an eighth configuration of the system 600 h as depicted inFIG. 6H may comprise two or more directional antennas 616 a-b (e.g., andassociated and/or coupled actuators 618 h-1, 618 h-2) utilized toreceive signals from different satellites (e.g., in different clear skyareas) at a single time.

Fewer or more components 602, 612, 612 a, 612 b, 614, 614 a-b, 616, 616a-b, 616 c, 616 d, 616 g, 618, 618 h-1, 618 h-2, 630, 640, 644-1, 644-2and/or various configurations of the depicted components 602, 612, 612a, 612 b, 614, 614 a-b, 616, 616 a-b, 616 c, 616 d, 616 g, 618, 618 h-1,618 h-2, 630, 640, 644-1, 644-2 may be included in the system 600without deviating from the scope of embodiments described herein. Insome embodiments, the components 602, 612, 612 a, 612 b, 614, 614 a-b,616, 616 a-b, 616 c, 616 d, 616 g, 618, 618 h-1, 618 h-2, 630, 640,644-1, 644-2 may be similar in configuration and/or functionality tosimilarly named and/or numbered components as described herein. In someembodiments, the system 600 (and/or portion thereof) may comprise a GNSSplatform programmed and/or otherwise configured to execute, conduct,and/or facilitate one or more methods (e.g., the method 700 of FIG. 7herein) for selective and/or opportunistic GNSS/GPS navigation, asdescribed herein.

III. Selective and/or Opportunistic GNSS/GPS Navigation Methods

Referring now to FIG. 7 , a flow diagram of a method 700 according tosome embodiments are shown. In some embodiments, the method 700 may beperformed and/or implemented by and/or otherwise associated with one ormore specialized and/or specially-programmed computers (e.g., one ormore of the vehicles/receivers 210, 310, 410, 510, processing devices212, 612, 612 a, 612 b, 812, the remote server 206, and/or the apparatus810 of FIG. 2 , FIG. 3 , FIG. 4 , FIG. 5 , FIG. 6A, FIG. 6B, FIG. 6C,FIG. 6D, FIG. 6E, FIG. 6F, FIG. 6G, FIG. 6H, and/or FIG. 8 herein),computer terminals, computer servers, computer systems and/or networks,and/or any combinations thereof (e.g., by one or more multi-threadedand/or multi-core processing units of a selective GNSS/GPS navigationsystem). In some embodiments, the method 700 may be embodied in,facilitated by, and/or otherwise associated with various inputmechanisms and/or interfaces (such as the interface 820 of FIG. 8herein).

The process diagrams and flow diagrams described herein do notnecessarily imply a fixed order to any depicted actions, steps, and/orprocedures, and embodiments may generally be performed in any order thatis practicable unless otherwise and specifically noted. While the orderof actions, steps, and/or procedures described herein is generally notfixed, in some embodiments, actions, steps, and/or procedures may bespecifically performed in the order listed, depicted, and/or describedand/or may be performed in response to any previously listed, depicted,and/or described action, step, and/or procedure. Any of the processesand methods described herein may be performed and/or facilitated byhardware, software (including microcode), firmware, or any combinationthereof. For example, a storage medium (e.g., a hard disk, Random AccessMemory (RAM) device, cache memory device, Universal Serial Bus (USB)mass storage device, and/or Digital Video Disk (DVD); e.g., thememory/data storage devices 240, 640, 840, 940 a-e, 1040 of FIG. 2 ,FIG. 6A, FIG. 6B, FIG. 6C, FIG. 6D, FIG. 6E, FIG. 6F, FIG. 6G, FIG. 6H,FIG. 8 , FIG. 9A, FIG. 9B, FIG. 9C, FIG. 9D, FIG. 9E, and/or FIG. 10herein) may store thereon instructions that when executed by a machine(such as a computerized processor) result in performance according toany one or more of the embodiments described herein.

In some embodiments, the method 700 may comprise receiving (e.g., fromone or more remote transmitters and/or via at least one antenna) aplurality of signals, at 702. The signals may be transmitted by the oneor more remote transmitters and received by a vehicle and/or navigationsignal receiver such as a GNSS/GPS receiver, e.g., thereof. In someembodiments, as few as one signal may be received, while in manyembodiments the number of signals may be greater than or equal to four(4) or six (6). According to some embodiments, the method 700 maycomprise identifying (e.g., by a processing device of thevehicle/receiver) origin data for the signals, at 704. One or more dataelements and/or characteristics of the received signals may be measured,computed, decoded, and/or otherwise identified and/or determined, forexample, such that data descriptive of an origination location, bearing,angle, etc. of each signal may be identified. In some embodiments,signal strength may be measured and/or may be included in and/orcomprise the origin data. Reflected, refracted, and/or diluted signalsmay, for example, comprise lower signal strengths than similar signals(e.g., from the same source) that are not subject to such instances ofinterference, and a determination that a signal has been interfered withmay provide an indication regarding the signal's origin. According tosome embodiments, signal information that identifies a source of thesignal may be utilized in conjunction with lookup data defininglocations for known sources to derive an origination location of thesignal. In some embodiments, a bearing or heading of an incoming signalmay be measured and/or derived to indicate a direction of a sourcelocation.

According to some embodiments, the method 700 may comprise identifying(e.g., by the processing device of the vehicle/receiver) a currentlocation of the receiver, at 706. The current location may be retrievedfrom a database of location tracking data and/or of previousgeo-location calculations, for example, and/or may be derived/computedbased on previous location data and movement data (e.g., of thevehicle). In some embodiments, the method 700 may comprise identifying(e.g., by the processing device of the vehicle/receiver) clear sky datafor the current location, at 708. The current location may be utilized,for example, to retrieve 3-D mapping, obstacle, sky-masking, and/orterrain data from a database of geo-referenced data. In someembodiments, the clear sky data may be computed and/or derived based onsensor data captured at the current location (and/or that is otherwisedescriptive of the current location). In some embodiments, the clear skydata may comprise definitions of one or more areas of visible sky at thecurrent location that are identified as “clear” (i.e., no knownobstructions) or “obstructed” (i.e., some quantity and/or type ofobstruction is know to, or is computed to be likely to, exist).According to some embodiments, the clear sky data may be based on acurrent time, day, day of the week, month, year, and/or season. Theclear sky data may define for different seasons at a given currentlocation, for example, which areas of the visible sky (i.e., the portionof sky not blocked by the curvature of the earth and that would bevisible via direct line-of-sight but-for any obstructions) are notlikely to be blocked by seasonal foliage.

In some embodiments, the method 700 may comprise determining (e.g., bythe processing device of the vehicle/receiver) whether any given signalis from “clear sky”, at 710. The origin data for a signal may becompared to the clear sky data for the current location, for example, toidentify whether the signal likely originated from an area of clear skyor is otherwise likely a suspect signal (e.g., a reflected, refracted,diluted, bent, and/or fake signal). In the case that origin data (e.g.,origin location, bearing, etc.) falls within a range of locations,bearings, etc. that are identified as “clear sky”, then the signal maybe designated, flagged, tagged, and/or marked as being a clear skysignal.

According to some embodiments, in the case that the signal is determinedto be a clear sky signal, the method 700 may comprise and/or continue toadding the signal to a listing and/or store of input data, at 712. Insome embodiments, the method 700 may comprise determining (e.g., by theprocessing device of the vehicle/receiver) whether more signals remainto be processed, at 714. In the case that one or more received signalshave not yet been analyzed with respect to the clear sky data, forexample, the method 700 may proceed back to determining whether thesignal is from “clear sky”, at 710. In the case that all receivedsignals (and/or all signals amounting to a requisite amount of minimumdata necessary and/or desired for computational purposes) have all beencategorized, the method 700 may comprise and/or continue to computing ageo-location utilizing the input data, at 716. One or more storedGNSS/GPS geo-location computation algorithms, models, and/or formulasembodied in stored computer code may, for example, be executed utilizinga subset of received signals that have been identified as “clearsky”-originating signals to compute a geo-location/updated location(e.g., for the vehicle/receiver). In some embodiments, iteration may beutilized, e.g., to utilize an estimated and/or best-known currentlocation identified at 706, computing the geo-location utilizing asignal mask (e.g., clear sky data) for the best-known current location,and then re-evaluating and/or recomputing the geo-location by proceedingback to 706 (e.g., via the dotted line shown in FIG. 7 ). In such amanner, for example, even an inaccurate current location may be utilized(e.g., with an inaccurate/incorrect signal mask/filter) to derive abetter/more accurate location, which may then be utilized to furtherincrease the accuracy (e.g., by applying more relevant/accuratelocation-based masks/filters).

In some embodiments, in the case that a given signal is determined at710 to not be from clear sky (and/or from “obstructed sky”), the method700 may comprise and/or continue to identifying a characteristic of thesignal, at 718. The strength, intensity, embedded data, and/or incomingbearing of a signal may be informative, for example, of the nature/typeof the signal. In some embodiments, the bearing, location, etc.descriptive of the origin of the signal may be utilized to derive thecharacteristic. It may be determined (e.g., computed) based on thegeometry of the current location, known obstacles, and the origin data,for example, that a particular signal has passed through an area ofinterference (e.g., an “obstructed sky” region or zone). According tosome embodiments, the method 700 may comprise determining (e.g., by theprocessing device of the vehicle/receiver) whether to apply a signalmodifier, at 720. Certain signal types and/or certain signals havingpredefined characteristics may, for example, be determined to be usefulfor geo-location calculations (particularly in situations where fewsignals are available to choose from) and while known to be suspect(e.g., for not having originated from known clear sky areas), may beutilized with little negative effect if modified prior to use. Thecharacteristic of the signal may be compared, for example, to storedcharacteristic data that maps signal characteristics to mathematicalmodifiers, altered formulas, etc. In the case of a signal known to havepassed through an area of cloud interference, for example, a weightmodifier and/or signal adjustment modifier configured to account forsuch cloud interference may be identified (e.g., retrieved from adatabase). Other signals, e.g., of certain types and/or from certainobstructed sky regions may be determined not to be useful (or toodetrimental) and the method 700 may comprise and/or proceed todiscarding the signal, at 722. The signal may, for example, be deleted,rejected, filtered out, flagged for non-use (or only for emergency use;e.g., in the case that a reduced quantity of available signals requiresadditional data to resolve a geo-location), and/or ignored.

According to some embodiments, in the case that it is determined thatthe signal has a corresponding modifier (e.g., based on a matching ofthe characteristic to stored characteristic data), the method 700 maycomprise and/or continue to identifying the modifier, at 724 and/orapplying the modifier, at 726. Stored modifier data determined to berelated to the signal type/characteristic may be located in a datastore, retrieved, and mathematically applied to the signal data, forexample, to define a modified signal. The modification may, in someembodiments, alter data within the signal and/or may be appended to thesignal data to define a particular weight, confidence level, threshold,handicap, etc. according to some embodiments, once the signal ismodified and/or joined with the appropriate modifier, the method 700 maycomprise and/or proceed to adding the modified signal to the input data,at 712. In such a manner, for example, raw direct line-of-sight signalsand modified/weighted obstructed sky signals may both be utilized in thegeo-location computation at 716. In some embodiments, all obstructed skysignals may simply be discarded at 722, e.g., without additionalanalysis thereof, and the geo-location may be resolved utilizing onlyclear sky signal data.

In some embodiments, in the case that the vehicle/receiver is mobile,the method 700 may comprise and/or proceed to tracking movement data, at728. An IMU and/or other sensors may, for example, measure and/or trackvehicle movement to derive a new/updated location that may then beutilized to process additional geo-location fixes. Utilizing themovement tracking data, for example, the method 700 may proceed, in someembodiments, back to receiving additional signals (e.g., at thenew/updated location and at a subsequent time) at 702 and the method 700may be repeated, utilizing the new/updated location data at 706 tocalculate a new/updated geo-location resolution/fix.

IV. Selective and/or Opportunistic GNSS/GPS Navigation Apparatus andArticles of Manufacture

Turning to FIG. 8 , a block diagram of an apparatus 810 according tosome embodiments is shown. In some embodiments, the apparatus 810 may besimilar in configuration and/or functionality to one or more of the oneor more of the vehicles/receivers 210, 310, 410, 510, processing devices212, 612, 612 a, 612 b, 812, and/or the remote server 206 of FIG. 2 ,FIG. 3 , FIG. 4 , FIG. 5 , FIG. 6A, FIG. 6B, FIG. 6C, FIG. 6D, FIG. 6E,FIG. 6F, FIG. 6G, and/or FIG. 6H herein. The apparatus 810 may, forexample, execute, process, facilitate, and/or otherwise be associatedwith the method 700 of FIG. 7 herein, and/or portions thereof. In someembodiments, the apparatus 810 may comprise a processing device 812, acommunication device 814, an input device 816, an output device 818, aninterface 820, a masking device 830, a memory device 840 (storingvarious programs and/or instructions 842 and data 844), and/or a coolingdevice 850. According to some embodiments, any or all of the components812, 814, 816, 818, 820, 830, 840, 842, 844, 850 of the apparatus 810may be similar in configuration and/or functionality to any similarlynamed and/or numbered components described herein. Fewer or morecomponents 812, 814, 816, 818, 820, 830, 840, 842, 844, 850 and/orvarious configurations of the components 812, 814, 816, 818, 820, 830,840, 842, 844, 850 may be included in the apparatus 810 withoutdeviating from the scope of embodiments described herein.

According to some embodiments, the processor 812 may be or include anytype, quantity, and/or configuration of processor that is or becomesknown. The processor 812 may comprise, for example, an Intel® IXP 2800network processor or an Intel® XEON™ Processor coupled with an Intel®E8501 chipset. In some embodiments, the processor 812 may comprisemultiple interconnected processors, microprocessors, and/ormicro-engines. According to some embodiments, the processor 812 (and/orthe apparatus 810 and/or other components thereof) may be supplied powervia a power supply (not shown), such as a battery, an AlternatingCurrent (AC) source, a Direct Current (DC) source, an AC/DC adapter,solar cells, and/or an inertial generator. In the case that theapparatus 810 comprises a server, such as a blade server, necessarypower may be supplied via a standard AC outlet, power strip, surgeprotector, and/or Uninterruptible Power Supply (UPS) device.

In some embodiments, the communication device 814 may comprise any typeor configuration of communication device that is or becomes known orpracticable. The communication device 814 may, for example, comprise aBluetooth® Low Energy (BLE) and/or RF receiver, Network Interface Card(NIC), a telephonic device, a cellular network device, a router, a hub,a modem, and/or a communications port or cable. In some embodiments, thecommunication device 814 may be coupled to receive GNSS/GPS signal data,e.g., from a satellite and/or other remote transmission source (notshown in FIG. 8 ). The communication device 814 may, for example,comprise a GNSS/GPS receiver device that receives and/or acquiresnavigation signal data from a GNSS/GPS satellite constellation (notseparately depicted in FIG. 8 ) and/or a transmitter device thatprovides navigation data such as computed geo-location fixes. Accordingto some embodiments, the communication device 814 may also oralternatively be coupled to the processor 812. In some embodiments, thecommunication device 814 may comprise an infrared (IR), RF, Bluetooth™,Near-Field Communication (NFC), and/or Wi-Fi® network device coupled tofacilitate communications between the processor 812 and another device(such as a remote user device, not separately shown in FIG. 8 ).

In some embodiments, the input device 816 and/or the output device 818are communicatively coupled to the processor 812 (e.g., via wired and/orwireless connections and/or pathways) and they may generally compriseany types or configurations of input and output components and/ordevices that are or become known, respectively. The input device 816 maycomprise, for example, a keyboard that allows an operator of theapparatus 810 to interface with the apparatus 810 (e.g., by a vehicleoperator, navigator, etc.). In some embodiments, the input device 816may comprise a sensor, such as a camera, sound, light, and/or proximitysensor, configured to capture data of an environment surrounding theapparatus 810 and report measured values (e.g., data decretive ofobjects/obstacles; not shown) via signals to the apparatus 810 and/orthe processor 812. The output device 818 may, according to someembodiments, comprise a propulsion device, display screen, and/or otherpracticable output component and/or device. The output device 818 may,for example, provide an interface (such as the interface 820) via whichfunctionality for selective/opportunistic navigation processes isprovided to a user (e.g., via a website and/or mobile deviceapplication). According to some embodiments, the input device 816 and/orthe output device 818 may comprise and/or be embodied in a singledevice, such as a touch-screen monitor.

The memory device 840 may comprise any appropriate information storagedevice that is or becomes known or available, including, but not limitedto, units and/or combinations of magnetic storage devices (e.g., a harddisk drive), optical storage devices, and/or semiconductor memorydevices, such as RAM devices, Read Only Memory (ROM) devices, SingleData Rate Random Access Memory (SDR-RAM), Double Data Rate Random AccessMemory (DDR-RAM), and/or Programmable Read Only Memory (PROM). Thememory device 840 may, according to some embodiments, store one or moreof GNSS/GPS instructions 842-1, masking instructions 842-2, locationdata 844-1, movement data 844-2, and/or sensor data 844-3. In someembodiments, the GNSS/GPS instructions 842-1, masking instructions842-2, location data 844-1, movement data 844-2, and/or sensor data844-3 may be utilized by the processor 812 to provide output informationvia the output device 818 and/or the communication device 814.

According to some embodiments, the GNSS/GPS instructions 842-1 may beoperable to cause the processor 812 to process the location data 844-1,movement data 844-2, and/or sensor data 844-3 in accordance withembodiments as described herein. Location data 844-1, movement data844-2, and/or sensor data 844-3 received via the input device 816 and/orthe communication device 814 may, for example, be analyzed, sorted,filtered, decoded, decompressed, ranked, scored, plotted, and/orotherwise processed by the processor 812 in accordance with the GNSS/GPSinstructions 842-1. In some embodiments, location data 844-1, movementdata 844-2, and/or sensor data 844-3 may be fed by the processor 812through one or more mathematical and/or statistical formulas and/ormodels in accordance with the GNSS/GPS instructions 842-1 to compute,calculate, resolve, derive, and/or otherwise “fix” a geo-location of theapparatus 810, as described herein.

In some embodiments, the masking instructions 842-2 may be operable tocause the processor 812 to process the location data 844-1, movementdata 844-2, and/or sensor data 844-3 in accordance with embodiments asdescribed herein. Location data 844-1, movement data 844-2, and/orsensor data 844-3 received via the input device 816 and/or thecommunication device 814 may, for example, be analyzed, sorted,filtered, decoded, decompressed, ranked, scored, plotted, and/orotherwise processed by the processor 812 in accordance with the maskinginstructions 842-2. In some embodiments, location data 844-1, movementdata 844-2, and/or sensor data 844-3 may be fed by the processor 812through one or more mathematical and/or statistical formulas and/ormodels in accordance with the masking instructions 842-2 to identifyclear and/or obstructed sky areas/regions and selectively mask, filter,and/or otherwise limit the signal data utilized for geo-locationprocessing, as described herein.

In some embodiments, the apparatus 810 may comprise the masking device830. The masking device 830 may comprise, for example, a mechanical,electronic, electro-mechanical, firmware, and/or software device that isconfigured to selectively mask, filter, and/or otherwise limit thesignal data utilized for geo-location processing.

According to some embodiments, the apparatus 810 may comprise thecooling device 850. According to some embodiments, the cooling device850 may be coupled (physically, thermally, and/or electrically) to theprocessor 812 and/or to the memory device 840. The cooling device 850may, for example, comprise a fan, heat sink, heat pipe, radiator, coldplate, and/or other cooling component or device or combinations thereof,configured to remove heat from portions or components of the apparatus810.

Any or all of the exemplary instructions and data types described hereinand other practicable types of data may be stored in any number, type,and/or configuration of memory devices that is or becomes known. Thememory device 840 may, for example, comprise one or more data tables orfiles, databases, table spaces, registers, and/or other storagestructures. In some embodiments, multiple databases and/or storagestructures (and/or multiple memory devices 840) may be utilized to storeinformation associated with the apparatus 810. According to someembodiments, the memory device 840 may be incorporated into and/orotherwise coupled to the apparatus 810 (e.g., as shown) or may simply beaccessible to the apparatus 810 (e.g., externally located and/orsituated).

Referring to FIG. 9A, FIG. 9B, FIG. 9C, FIG. 9D, and FIG. 9E,perspective diagrams of exemplary data storage devices 940 a-e accordingto some embodiments are shown. The data storage devices 940 a-e may, forexample, be utilized to store instructions and/or data, such as theGNSS/GPS instructions 842-1, masking instructions 842-2, location data844-1, movement data 844-2, and/or sensor data 844-3, each of which ispresented in reference to FIG. 8 herein. In some embodiments,instructions stored on the data storage devices 940 a-e may, whenexecuted by a processor, cause the implementation of and/or facilitatethe method 700 of FIG. 7 herein, and/or portions thereof.

According to some embodiments, the first data storage device 940 a maycomprise one or more various types of internal and/or external harddrives. The first data storage device 940 a may, for example, comprise adata storage medium 946 that is read, interrogated, and/or otherwisecommunicatively coupled to and/or via a disk reading device 948. In someembodiments, the first data storage device 940 a and/or the data storagemedium 946 may be configured to store information utilizing one or moremagnetic, inductive, and/or optical means (e.g., magnetic, inductive,and/or optical-encoding). The data storage medium 946, depicted as afirst data storage medium 946 a for example (e.g., breakoutcross-section “A”), may comprise one or more of a polymer layer 946 a-1,a magnetic data storage layer 946 a-2, a non-magnetic layer 946 a-3, amagnetic base layer 946 a-4, a contact layer 946 a-5, and/or a substratelayer 946 a-6. According to some embodiments, a magnetic read head 948 amay be coupled and/or disposed to read data from the magnetic datastorage layer 946 a-2.

In some embodiments, the data storage medium 946, depicted as a seconddata storage medium 946 b for example (e.g., breakout cross-section“B”), may comprise a plurality of data points 946 b-2 disposed with thesecond data storage medium 946 b. The data points 946 b-2 may, in someembodiments, be read and/or otherwise interfaced with via alaser-enabled read head 948 b disposed and/or coupled to direct a laserbeam through the second data storage medium 946 b.

In some embodiments, the second data storage device 940 b may comprise aCD, CD-ROM, DVD, Blu-Ray™ Disc, and/or other type of optically-encodeddisk and/or other storage medium that is or becomes known orpracticable. In some embodiments, the third data storage device 940 cmay comprise a USB keyfob, dongle, and/or other type of flash memorydata storage device that is or becomes know or practicable. In someembodiments, the fourth data storage device 940 d may comprise RAM ofany type, quantity, and/or configuration that is or becomes practicableand/or desirable. In some embodiments, the fourth data storage device940 d may comprise an off-chip cache, such as a Level 2 (L2) cachememory device. According to some embodiments, the fifth data storagedevice 840 e may comprise an on-chip memory device, such as a Level 1(L1) cache memory device.

The data storage devices 940 a-e depicted in FIG. 9A, FIG. 9B, FIG. 9C,FIG. 9D, and FIG. 9E are representative of a class and/or subset ofcomputer-readable media that are defined herein as “computer-readablememory” (e.g., non-transitory memory devices as opposed to transmissiondevices or media). The data storage devices 840 a-e may generally storeprogram instructions, algorithms, software engines, code, and/or modulesthat, when executed by a processing device cause a particular machine tofunction in accordance with one or more embodiments described herein.

With reference to FIG. 10 , for example, the data storage devices 940a-e may store and/or define an algorithm 1000. The algorithm 1000 maycomprise, for example, one or more software programs, modules, engines,and/or applications coded to perform any of the method 700 of FIG. 7herein, and/or portions thereof. The algorithm 1000, and any referenceto the term “algorithm” herein, refers to any set of definedinstructions that operate upon input to define and/or provide output.The algorithm 1000 may, for example, be specifically programmed and/orotherwise defined to instruct a computer or other device (not shown) tosolve a particular problem (e.g., logical) and/or resolve a particularmathematical calculation (e.g., arithmetic). In some embodiments, thealgorithm 1000 may be written and/or defined as a series or sequence ofinstructions encoded in (e.g., written in accordance with syntax and/orsemantics rules) a particular computer programming language (e.g.,Python™, Java™, JavaScript™, C, C++, C#, Basic™, FORTRAN, COBOL, Ruby™,and/or Perl™), e.g., a set of instructions that convert and/or encodecharacters, objects, and/or other data elements into machine code (e.g.,code operable to be executed by an electronic processing device, such asa CPU).

According to some embodiments, the algorithm 1000 may comprisesoliciting input, at 1002. Input from one or more sources may besearched for and/or queried, by structuring and/or executing a databasequery and/or by sending a data communication signal or “handshake”, suchas is common with Bluetooth® short-range communication protocols. Insome embodiments, the algorithm 1000 may comprise receiving the input,at 1004. Whether solicited or otherwise provided and/or acquired (e.g.,received as an incoming signal, loaded and/or downloaded), for example,the input for the algorithm 1000 may be received, identified, and/orotherwise processed and/or located. According to some embodiments, thealgorithm 1000 may comprise data processing, at 1012. The dataprocessing 1012 may, for example, comprise execution of one or morelogical and/or computational procedures, modules, scripts, and/orroutines that may be stored in a memory device 1040 (e.g., similar tothe data storage devices 940 a-e) as a set of instructions or rules 1042and/or that may be defined and/or implemented by one or more electrical,mechanical, and/or physical components, such as logic gates, diodes,transistors, relays, and/or switches (e.g., operable to execute any ofthe method 700 of FIG. 7 herein, and/or portions thereof).

In some embodiments, execution of the algorithm 1000 may comprise aloading of the rules 1042 into the memory 1040 and/or into an electronicprocessing system (not shown) and/or an activation of one or more logicgates and/or other electrical and/or mechanical components. Thealgorithm 1000 may operate upon the input in accordance with the rules1042 to achieve a result by defining output, at 1018. The algorithm 1000may, for example, generate, produce, define, identify, calculate, and/orotherwise compute output based on an application of the data processing1012 utilizing the rules 1042 and any or all input receiving at 1004.According to some embodiments, the algorithm 1000 may comprise providingthe output, at 1020. One or more output devices (not shown) may beutilized to convey the output (e.g., a result, conclusion, decision,etc.) to one or more other devices and/or entities (not shown), such asone or more users, consumers, customers, potential customers, and/ordevices utilized thereby. The output may be displayed via an electronicdisplay screen of a computer, mobile/smart phone, smart watch, etc.,and/or may be transmitted as one or more electronic signals to one ormore network destination addresses, such as e-mail addresses, URLlocations, MAC addresses, and/or broadcast radio frequencies.

According to some embodiments, the data processing at 1012 may compriseexecution of a listing, sequence, matrix, and/or other set of storedsteps and/or instructions that utilize the input to define the output.In some embodiments, the listing of steps and/or instruction details maycomprise elements that are known to those skilled in the art. Thealgorithm 1000 may partially or completely comprise, for example,instructions and/or steps that are well known, such as steps and/orinstructions operable to calculate an area (length times width), volume(length times width times height), distance (difference between twolocations), velocity (distance over time), acceleration (velocity overtime), GNSS/GPS location, and/or any other known mathematical and/orlogical (if/then statements) procedures. For any and all knownprocedures and/or instructions, the discrete details of suchinstructions are represented by the data processing at 1012 and are notlisted herein as one of ordinary skill in the art would readilycomprehend both what such technological knowledge entails and that theinventor has possession of such knowledge. Instructions that may beincluded within and/or comprise the data processing at 1012 (and/or thealgorithm 1000) may include, for example, but are not limited to, anyknown or practicable: (i) GNSS, GPS, and/or other navigationalgeo-location resolution algorithms, (ii) Al and/or ML data inputclassification algorithms, (iii) data transmission algorithms, (iv) dataencoding algorithms, (v) data decoding algorithms, (vi) logical and/ormathematical data comparison algorithms, and (vii) data searching (e.g.,keyword searching) algorithms

V. Rules of Interpretation

Throughout the description herein and unless otherwise specified, thefollowing terms may include and/or encompass the example meaningsprovided. These terms and illustrative example meanings are provided toclarify the language selected to describe embodiments both in thespecification and in the appended claims, and accordingly, are notintended to be generally limiting. While not generally limiting andwhile not limiting for all described embodiments, in some embodiments,the terms are specifically limited to the example definitions and/orexamples provided. Other terms are defined throughout the presentdescription.

Neither the Title (set forth at the beginning of the first page of thispatent application) nor the Abstract (set forth at the end of thispatent application) is to be taken as limiting in any way as the scopeof the disclosed invention(s). Headings of sections provided in thispatent application are for convenience only, and are not to be taken aslimiting the disclosure in any way.

All definitions, as defined and used herein, should be understood tocontrol over dictionary definitions, definitions in documentsincorporated by reference, and/or ordinary meanings of the definedterms. The terms and expressions which have been employed herein areused as terms of description and not of limitation, and there is nointention, in the use of such terms and expressions, of excluding anyequivalents of the features shown and described (or portions thereof),and it is recognized that various modifications are possible within thescope of the claims. Accordingly, the claims are intended to cover allsuch equivalents.

The indefinite articles “a” and “an,” as used herein in thespecification and in the claims, unless clearly indicated to thecontrary, should be understood to mean “at least one” or “one or more”.

The phrase “and/or,” as used herein in the specification and in theclaims, should be understood to mean “either or both” of the elements soconjoined, i.e., elements that are conjunctively present in some casesand disjunctively present in other cases. Other elements may optionallybe present other than the elements specifically identified by the“and/or” clause, whether related or unrelated to those elementsspecifically identified, unless clearly indicated to the contrary.

When an ordinal number (such as “first”, “second”, “third” and so on) isused as an adjective before a term, that ordinal number is used (unlessexpressly specified otherwise) merely to indicate a particular feature,such as to distinguish that particular feature from another feature thatis described by the same term or by a similar term. For example, a“first widget” may be so named merely to distinguish it from, e.g., a“second widget”. Thus, the mere usage of the ordinal numbers “first” and“second” before the term “widget” does not indicate any otherrelationship between the two widgets, and likewise does not indicate anyother characteristics of either or both widgets. For example, the mereusage of the ordinal numbers “first” and “second” before the term“widget” (1) does not indicate that either widget comes before or afterany other in order or location; (2) does not indicate that either widgetoccurs or acts before or after any other in time; and (3) does notindicate that either widget ranks above or below any other, as inimportance or quality. In addition, the mere usage of ordinal numbersdoes not define a numerical limit to the features identified with theordinal numbers. For example, the mere usage of the ordinal numbers“first” and “second” before the term “widget” does not indicate thatthere must be no more than two widgets.

An enumerated list of items (which may or may not be numbered) does notimply that any or all of the items are mutually exclusive, unlessexpressly specified otherwise. Likewise, an enumerated list of items(which may or may not be numbered) does not imply that any or all of theitems are comprehensive of any category, unless expressly specifiedotherwise. For example, the enumerated list “a computer, a laptop, aFDA” does not imply that any or all of the three items of that list aremutually exclusive and does not imply that any or all of the three itemsof that list are comprehensive of any category.

Some embodiments described herein are associated with a “user device” ora “network device”. As used herein, the terms “user device” and “networkdevice” may be used interchangeably and may generally refer to anydevice that can communicate via a network. Examples of user or networkdevices include a PC, a workstation, a server, a printer, a scanner, afacsimile machine, a copier, a Personal Digital Assistant (PDA), astorage device (e.g., a disk drive), a hub, a router, a switch, and amodem, a video game console, or a wireless phone. User and networkdevices may comprise one or more communication or network components. Asused herein, a “user” may generally refer to any individual and/orentity that operates a user device. Users may comprise, for example,customers, consumers, product underwriters, product distributors,customer service representatives, agents, brokers, etc.

As used herein, the term “network component” may refer to a user ornetwork device, or a component, piece, portion, or combination of useror network devices. Examples of network components may include a StaticRandom Access Memory (SRAM) device or module, a network processor, and anetwork communication path, connection, port, or cable.

In addition, some embodiments are associated with a “network” or a“communication network”. As used herein, the terms “network” and“communication network” may be used interchangeably and may refer to anyobject, entity, component, device, and/or any combination thereof thatpermits, facilitates, and/or otherwise contributes to or is associatedwith the transmission of messages, packets, signals, and/or other formsof information between and/or within one or more network devices.Networks may be or include a plurality of interconnected networkdevices. In some embodiments, networks may be hard-wired, wireless,virtual, neural, and/or any other configuration of type that is orbecomes known. Communication networks may include, for example, one ormore networks configured to operate in accordance with the Fast EthernetLAN transmission standard 802.3-2002® published by the Institute ofElectrical and Electronics Engineers (IEEE). In some embodiments, anetwork may include one or more wired and/or wireless networks operatedin accordance with any communication standard or protocol that is orbecomes known or practicable.

As used herein, the terms “information” and “data” may be usedinterchangeably and may refer to any data, text, voice, video, image,message, bit, packet, pulse, tone, waveform, and/or other type orconfiguration of signal and/or information. Information may compriseinformation packets transmitted, for example, in accordance with theInternet Protocol Version 6 (IPv6) standard as defined by “InternetProtocol Version 6 (IPv6) Specification” RFC 1883, published by theInternet Engineering Task Force (IETF), Network Working Group, S.Deering et al. (December 1995). Information may, according to someembodiments, be compressed, encoded, encrypted, and/or otherwisepackaged or manipulated in accordance with any method that is or becomesknown or practicable.

In addition, some embodiments described herein are associated with an“indication”. As used herein, the term “indication” may be used to referto any indicia and/or other information indicative of or associated witha subject, item, entity, and/or other object and/or idea. As usedherein, the phrases “information indicative of” and “indicia” may beused to refer to any information that represents, describes, and/or isotherwise associated with a related entity, subject, or object. Indiciaof information may include, for example, a code, a reference, a link, asignal, an identifier, and/or any combination thereof and/or any otherinformative representation associated with the information. In someembodiments, indicia of information (or indicative of the information)may be or include the information itself and/or any portion or componentof the information. In some embodiments, an indication may include arequest, a solicitation, a broadcast, and/or any other form ofinformation gathering and/or dissemination.

As utilized herein, the terms “program” or “computer program” may referto one or more algorithms formatted for execution by a computer. Theterm “module” or “software module” refers to any number of algorithmsand/or programs that are written to achieve a particular output and/oroutput goal—e.g., a ‘login credentialing’ module (or program) mayprovide functionality for permitting a user to login to a computersoftware and/or hardware resource and/or a ‘shipping’ module (orprogram) may be programmed to electronically initiate a shipment of anobject via a known and/or available shipping company and/or service(e.g., FedEX®). The terms “engine” or “software engine” refer to anycombination of software modules and/or algorithms that operate upon oneor more inputs to define one or more outputs in an ongoing, cyclical,repetitive, and/or loop fashion. Data transformation scripts and/oralgorithms that query data from a data source, transform the data, andload the transformed data into a target data repository may be termed‘data transformation engines’, for example, as they repetitively operatein an iterative manner upon each row of data to produce the desiredresults.

Numerous embodiments are described in this patent application, and arepresented for illustrative purposes only. The described embodiments arenot, and are not intended to be, limiting in any sense. The presentlydisclosed invention(s) are widely applicable to numerous embodiments, asis readily apparent from the disclosure. One of ordinary skill in theart will recognize that the disclosed invention(s) may be practiced withvarious modifications and alterations, such as structural, logical,software, and electrical modifications. Although particular features ofthe disclosed invention(s) may be described with reference to one ormore particular embodiments and/or drawings, it should be understoodthat such features are not limited to usage in the one or moreparticular embodiments or drawings with reference to which they aredescribed, unless expressly specified otherwise.

Devices that are in communication with each other need not be incontinuous communication with each other, unless expressly specifiedotherwise. On the contrary, such devices need only transmit to eachother as necessary or desirable, and may actually refrain fromexchanging data most of the time. For example, a machine incommunication with another machine via the Internet may not transmitdata to the other machine for weeks at a time. In addition, devices thatare in communication with each other may communicate directly orindirectly through one or more intermediaries.

A description of an embodiment with several components or features doesnot imply that all or even any of such components and/or features arerequired. On the contrary, a variety of optional components aredescribed to illustrate the wide variety of possible embodiments of thepresent invention(s). Unless otherwise specified explicitly, nocomponent and/or feature is essential or required.

Further, although process steps, algorithms or the like may be describedin a sequential order, such processes may be configured to work indifferent orders. In other words, any sequence or order of steps thatmay be explicitly described does not necessarily indicate a requirementthat the steps be performed in that order. The steps of processesdescribed herein may be performed in any order practical. Further, somesteps may be performed simultaneously despite being described or impliedas occurring non-simultaneously (e.g., because one step is describedafter the other step). Moreover, the illustration of a process by itsdepiction in a drawing does not imply that the illustrated process isexclusive of other variations and modifications thereto, does not implythat the illustrated process or any of its steps are necessary to theinvention, and does not imply that the illustrated process is preferred.

“Determining” something can be performed in a variety of manners andtherefore the term “determining” (and like terms) includes calculating,computing, deriving, looking up (e.g., in a table, database or datastructure), ascertaining and the like.

It will be readily apparent that the various methods and algorithmsdescribed herein may be implemented by, e.g., appropriately and/orspecially-programmed computers and/or computing devices. Typically aprocessor (e.g., one or more microprocessors) will receive instructionsfrom a memory or like device, and execute those instructions, therebyperforming one or more processes defined by those instructions. Further,programs that implement such methods and algorithms may be stored andtransmitted using a variety of media (e.g., computer readable media) ina number of manners. In some embodiments, hard-wired circuitry or customhardware may be used in place of, or in combination with, softwareinstructions for implementation of the processes of various embodiments.Thus, embodiments are not limited to any specific combination ofhardware and software

A “processor” generally means any one or more microprocessors, CPUdevices, computing devices, microcontrollers, digital signal processors,or like devices, as further described herein.

The term “computer-readable medium” refers to any medium thatparticipates in providing data (e.g., instructions or other information)that may be read by a computer, a processor or a like device. Such amedium may take many forms, including but not limited to, non-volatilemedia, volatile media, and transmission media. Non-volatile mediainclude, for example, optical or magnetic disks and other persistentmemory. Volatile media include DRAM, which typically constitutes themain memory. Transmission media include coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled tothe processor. Transmission media may include or convey acoustic waves,light waves and electromagnetic emissions, such as those generatedduring RF and IR data communications. Common forms of computer-readablemedia include, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, any other magnetic medium, a CD-ROM, DVD, any otheroptical medium, punch cards, paper tape, any other physical medium withpatterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any othermemory chip or cartridge, a carrier wave, or any other medium from whicha computer can read.

The term “computer-readable memory” may generally refer to a subsetand/or class of computer-readable medium that does not includetransmission media such as waveforms, carrier waves, electromagneticemissions, etc. Computer-readable memory may typically include physicalmedia upon which data (e.g., instructions or other information) arestored, such as optical or magnetic disks and other persistent memory,DRAM, a floppy disk, a flexible disk, hard disk, magnetic tape, anyother magnetic medium, a CD-ROM, DVD, any other optical medium, punchcards, paper tape, any other physical medium with patterns of holes, aRAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip orcartridge, computer hard drives, backup tapes, Universal Serial Bus(USB) memory devices, and the like.

Various forms of computer readable media may be involved in carryingdata, including sequences of instructions, to a processor. For example,sequences of instruction (i) may be delivered from RAM to a processor,(ii) may be carried over a wireless transmission medium, and/or (iii)may be formatted according to numerous formats, standards or protocols,such as Bluetooth™, TDMA, CDMA, 3G.

Where databases are described, it will be understood by one of ordinaryskill in the art that (i) alternative database structures to thosedescribed may be readily employed, and (ii) other memory structuresbesides databases may be readily employed. Any illustrations ordescriptions of any sample databases presented herein are illustrativearrangements for stored representations of information. Any number ofother arrangements may be employed besides those suggested by, e.g.,tables illustrated in drawings or elsewhere. Similarly, any illustratedentries of the databases represent exemplary information only; one ofordinary skill in the art will understand that the number and content ofthe entries can be different from those described herein. Further,despite any depiction of the databases as tables, other formats(including relational databases, object-based models and/or distributeddatabases) could be used to store and manipulate the data typesdescribed herein. Likewise, object methods or behaviors of a databasecan be used to implement various processes, such as the describedherein. In addition, the databases may, in a known manner, be storedlocally or remotely from a device that accesses data in such a database.

The present invention can be configured to work in a network environmentincluding a computer that is in communication, via a communicationsnetwork, with one or more devices. The computer may communicate with thedevices directly or indirectly, via a wired or wireless medium such asthe Internet, LAN, WAN or Ethernet, Token Ring, or via any appropriatecommunications means or combination of communications means. Each of thedevices may comprise computers, such as those based on the Intel®Pentium® or Centrino™ processor, that are adapted to communicate withthe computer. Any number and type of machines may be in communicationwith the computer.

The present disclosure provides, to one of ordinary skill in the art, anenabling description of several embodiments and/or inventions. Some ofthese embodiments and/or inventions may not be claimed in the presentapplication, but may nevertheless be claimed in one or more continuingapplications that claim the benefit of priority of the presentapplication. Applicants intend to file additional applications to pursuepatents for subject matter that has been disclosed and enabled but notclaimed in the present application.

It will be understood that various modifications can be made to theembodiments of the present disclosure herein without departing from thescope thereof. Therefore, the above description should not be construedas limiting the disclosure, but merely as embodiments thereof. Thoseskilled in the art will envision other modifications within the scope ofthe invention as defined by the claims appended hereto.

What is claimed is:
 1. An opportunistic navigation system, comprising:an electronic processing device; a receiver in communication with theelectronic processing device; and a non-transitory computer-readablemedium storing (i) clear sky data, and (ii) instructions that whenexecuted by the electronic processing device result in: receiving, bythe receiver a plurality of signals from a plurality of different remotetransmitters; identifying, based on the received signals and for each ofthe different remote transmitters, at least one of a bearing and anoriginating transmitter location; identifying, based on the clear skydata, a first subset of the plurality of signals that comprise at leastone of bearings and originating transmitter locations within apredefined open sky range of bearings or originating transmitterlocations, respectively; identifying, based on the clear sky data, asecond subset of the plurality of signals that comprise at least one ofbearings and originating transmitter locations within a predefinedobstructed sky range of bearings or originating transmitter locations,respectively; and computing, based on the first subset of the pluralityof signals, a localization solution.
 2. The opportunistic navigationsystem of claim 1, wherein the instructions, when executed by theelectronic processing device, further result in: computing amathematical weighting for at least one signal from the second subset ofthe plurality of signals; and wherein the computing of the localizationsolution is further based on the mathematical weighting of the at leastone signal from the second subset of the plurality of signals.
 3. Theopportunistic navigation system of claim 1, wherein the receivercomprises a directional antenna that is selectively oriented to abearing identified as clear sky by the clear sky data.
 4. Theopportunistic navigation system of claim 3, further comprising: anactuator that is operable to receive a command from the processingdevice and in response to the command, reorient the directional antennafrom an initial bearing to the bearing identified as clear sky by theclear sky data.
 5. The opportunistic navigation system of claim 1,wherein clear sky data is identified based on a current location of avehicle.
 6. The opportunistic navigation system of claim 5, wherein theinstructions, when executed by the electronic processing device, furtherresult in: tracking a movement of the vehicle; computing a new locationof the vehicle; and updating the clear sky data based on the newlocation of the vehicle.
 7. The opportunistic navigation system of claim6, wherein the instructions, when executed by the electronic processingdevice, further result in: receiving, by the receiver an additionalplurality of signals from an additional plurality of different remotetransmitters; identifying, based on the received additional signals andfor each of the additional different remote transmitters, at least oneof a bearing and an originating transmitter location; identifying, basedon the updated clear sky data, a third subset of the additionalplurality of signals that comprise at least one of bearings andoriginating transmitter locations within an updated predefined open skyrange of bearings or originating transmitter locations, respectively;identifying, based on the updated clear sky data, a fourth subset of theadditional plurality of signals that comprise at least one of bearingsand originating transmitter locations within an updated predefinedobstructed sky range of bearings or originating transmitter locations,respectively; and computing, based on the third subset of the pluralityof signals, an updated localization solution.
 8. The opportunisticnavigation system of claim 1, wherein the clear sky data comprisesstored data that relates geo-locations to clear sky mask data.
 9. Theopportunistic navigation system of claim 8, wherein the sky mask datacomprises data defining a subset of visible sky areas that aredetermined to be free of obstacles.
 10. The opportunistic navigationsystem of claim 8, wherein the sky mask data comprises data defining asubset of visible sky areas that are determined to be obstructed byobstacles.
 11. The opportunistic navigation system of claim 1, furthercomprising: a masking device in communication with the electronicprocessing device and the receiver.
 12. The opportunistic navigationsystem of claim 11, wherein the identifying of the first and secondsubsets of signals is performed by the masking device.
 13. Theopportunistic navigation system of claim 11, wherein the masking devicecomprises a physical device coupled to the receiver in a manner thatselectively blocks the second subset of signals from reaching thereceiver.
 14. The opportunistic navigation system of claim 1, whereinthe different remote transmitters comprise a constellation ofsatellites.